package com.yuyou.fn.educational.service;

import com.github.wens.framework.service.ISuperService;
import com.github.wens.mybatisplus.plugins.Page;
import com.yuyou.fn.educational.entity.CourseTemplate;
import com.yuyou.fn.educational.vo.CourseTemplateQueryVo;
import com.yuyou.fn.educational.vo.CourseTemplateSaveOrUpdateVo;
import com.yuyou.fn.platform.entity.SysUser;
import com.yuyou.fn.platform.permission.DataPermission;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;

import java.util.List;

/**
 *
 * CourseTemplate 表数据服务层接口
 *
 */
public interface ICourseTemplateService extends ISuperService<CourseTemplate,Long> {


    Page<CourseTemplate> findCourseTemplateByQueryForManage(CourseTemplateQueryVo courseTemplateQuery, DataPermission dataPermission, int pageNo, int pageSize);

    SXSSFWorkbook exportCourseTemplateByQueryForManage(CourseTemplateQueryVo courseTemplateQuery, DataPermission dataPermission);

    Page<CourseTemplate> findCourseTemplateByQueryForUse(CourseTemplateQueryVo courseTemplateQuery, DataPermission dataPermission, int pageNo, int pageSize);

    void saveOrUpdateCourseTemplateList(CourseTemplateSaveOrUpdateVo courseTemplateSaveOrUpdateVo);

    void changeCourseStatus(Long courseTemplateId, Integer status);


    void saveOrUpdateCourseTemplateList(List<CourseTemplate> courseTemplateList,SysUser user);

    void deleteCourse(Long courseTemplateId) ;

    List<CourseTemplate> findBaseCourse(DataPermission dataPermission);

    List<CourseTemplate> findCourseTemplateByQuery(CourseTemplateQueryVo courseTemplateQuery);

    List<CourseTemplate> findBaseCourseByAreaTeamId(Long areaTeamId);

    List<CourseTemplate> findBaseCourseByAreaTeamIdPeriodIds(Long areaTeamId,List<Long> periodId);

    CourseTemplate findCourseByAreaTeamIdGradeIdSubjectIdCourseNamePeriodIdProductId(Long  areaTeamId , Long gradeId , Long subjectId , String courseName , Long periodId,Long productId);
}